package com.exercise;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class exercise01 {
    public static void printLists(Iterator<String> it){
        while(it.hasNext()){
            String everyStr = it.next();
            System.out.println(everyStr);
        }
    }
    public static void main(String[] args) {
        Collection<String> cal = new ArrayList();
        cal.add("JavaEE企业级开发指南");
        cal.add("Oracle高级编程");
        cal.add("MySQL从入门到精通");
        cal.add("Java架构师之路");

        System.out.println("------使用迭代器遍历所有元素并打印----------");
        Iterator<String> iterator1 = cal.iterator();
        printLists(iterator1);
        System.out.println("--------使用迭代器遍历所有元素筛选书名小于10个字符的并打印。---------");
        Iterator<String> iterator2 = cal.iterator();
        while(iterator2.hasNext()){
            String everyStr = iterator2.next();
            if(everyStr.length() < 10) System.out.println(everyStr);
        }
        System.out.println("--------使用迭代器遍历所有元素，筛选书名中包含“Java”的，并打印。---------");
        Iterator<String> iterator3 = cal.iterator();
        while(iterator3.hasNext()){
            String everyStr = iterator3.next();
            if(everyStr.contains("Java")) System.out.println(everyStr);
        }
        System.out.println("--------如果书名中包含“Oracle”，则删掉此书。删掉后，遍历集合，打印所有书名。---------");
        ArrayList<String> stringLists = new ArrayList<String>();  // 存的是包含oracle的集合。
        for (String c: cal) {
            if(c.contains("Oracle")) stringLists.add(c);
        }
        for(String c : stringLists){
            ((ArrayList<String>) cal).remove(c);
        }
        Iterator<String> iterator4 = cal.iterator();
        printLists(iterator4);
    }
}
